/*
 * Copyright Hundsun Technologies Inc. All Rights Reserved.
 */

package state

import (
	pbcom "hundsun.com/hsl/hschain/protos/common"
)

// State state db的操作接口
type State interface {
	// 批量获取状态数据
	Get(datas *pbcom.StateGet) ([][]byte, error)
	// 获取当前最新状态数据信息
	GetStateInfo() (*pbcom.StateInfo, error)
	// 计算状态数据根hash,并且将计算的状态数据set到memory
	SetMemory(datas *pbcom.StateSet, sync bool) ([]byte, error)
	// 从内存提交到数据库中
	Commit(hash []byte) error
	// 回滚数据
	RollBack(datas *pbcom.StateSet) error
}
